package com.ufcg.lvc.client;

import java.util.ArrayList;
import java.util.List;

import com.google.gwt.user.client.rpc.AsyncCallback;

/**
 * 
 * The client side stub for the RPC service.
 * 
 * @author Larissa Costa
 * 
 */
public interface GreetingServiceCRUDAsync {

	void cadastraUsuarioSenha(String usuario, String senha, String nome, String email, AsyncCallback<String> callback);

	void deletarLinha(String tabela, String chave, String valor, String Id_usuario, AsyncCallback<Boolean> callback);

	void gerarLink(String titulo, String Id_usuario, AsyncCallback<String> callback);

	void getAlternativas(String titulo, String Id_usuario, AsyncCallback<List<List<String>>> callback);

	void getAlunoDaProva(String tituloProva, String nomeTurma, String Id_usuario, AsyncCallback<String> callback);

	void getAlunos(String Id_usuario, AsyncCallback<List<List<String>>> callback);

	void getAlunosDaTurma(String turma, String Id_usuario, AsyncCallback<List<String>> callback);

	void getCabecalhoInstituicao(String nome, String Id_usuario, AsyncCallback<String> callback);

	void getDadosUsuario(String Id_usuario, AsyncCallback<ArrayList<String>> callback);

	void getGabaritoProva(String nome_prova, AsyncCallback<List<List<String>>> callback);

	void getIDAluno(String nome, String Id_usuario, AsyncCallback<String> callback);

	void getIDIntituicao(String nome, String Id_usuario, AsyncCallback<String> callback);

	void getIDModelo(String titulo, String Id_usuario, AsyncCallback<String> callback);

	void getIDQuestao(String nome, String Id_usuario, AsyncCallback<String> callback);

	void getIDTurma(String nome, String Id_usuario, AsyncCallback<String> callback);

	void getIntituicao__(String nome, String Id_usuario, AsyncCallback<List<String>> callback);

	void getModeloDeProva(String modelo_id, AsyncCallback<List<String>> callback);

	void getModelosDeProva(String Id_usuario, AsyncCallback<List<List<String>>> callback);

	void getNextIDAluno(AsyncCallback<String> callback);

	void getNextIDModelo(AsyncCallback<String> callback);

	void getNextIDQuestao(AsyncCallback<String> callback);

	void getNomeAlunos(String Id_usuario, AsyncCallback<List<String>> callback);

	void getNomeDisciplinas(AsyncCallback<List<String>> callback);

	void getNomeIntituicoes(String Id_usuario, AsyncCallback<List<String>> callback);

	void getNomeUsuario(String Id_usuario, AsyncCallback<String> callback);

	void getProvas(String nome_, String Id_usuario, AsyncCallback<List<String>> callback);

	void getProvasNotas(String nomeTurma, String subtituloProva, String Id_usuario, AsyncCallback<ArrayList<ArrayList<String>>> callback);

	void getProvasSubtitulo(String turma_nome, String Id_usuario, AsyncCallback<List<String>> callback);

	void getProvasSubtitulos(String turmaNome, String Id_usuario, AsyncCallback<ArrayList<String>> callback);

	void getQuestaoID(String titulo, String Id_usuario, AsyncCallback<String> callback);

	void getQuestoes(String Id_usuario, AsyncCallback<List<List<String>>> callback);

	void getQuestoesDoModelo(String modelo_id, String Id_usuario, AsyncCallback<List<List<String>>> callback);

	void getQuestoesDoModeloDeProva(String modelo_id, AsyncCallback<List<List<String>>> callback);

	void getRespostasEValoresGabarito(String tituloProva, String turma, String Id_usuario, AsyncCallback<ArrayList<ArrayList<String>>> callback);

	void getTurmas(String Id_usuario, AsyncCallback<List<List<String>>> callback);

	void gravarResultados(String tituloProva, String texto, String Login_usuario, AsyncCallback<String> callback);

	void newProvaDoModelo(String string, String nomeAluno, String modelo_id, String Id_usuario, AsyncCallback<String[]> callback);

	void salvarAlternativa(String questao_id, ArrayList<String> imagem_id, ArrayList<String> enunciado, ArrayList<String> correta, AsyncCallback<Boolean> callback);

	void salvarAlunos(String nome, String matricula, String instituicao, String Id_usuario, AsyncCallback<Boolean> callback);

	void salvarAlunosDaTurma(String turma, ArrayList<String> alunos, String Id_usuario, AsyncCallback<Boolean> callback);

	void salvarInstituicao_Aluno(String instituicao_id, String matricula, AsyncCallback<Void> callback);

	void salvarIntituicao(String nome, String cabecalho, String Id_usuario, AsyncCallback<Boolean> callback);

	void salvarModeDeProva(String titulo, String assunto, String comentario, String modelo_id, String Id_usuario, AsyncCallback<Boolean> callback);

	void salvarNotaDaProva(String tituloProva, String nota, AsyncCallback<Boolean> callback);

	void salvarProva(String titulo, String texto, String nomeTurma, String tituloModeloDeProva, String Id_usuario, String Login_usuario, AsyncCallback<String> callback);

	void salvarQuestao(String titulo, String assunto, String enunciado, String dificuldade, String tipo, String imagem, String Id_usuario, AsyncCallback<Boolean> callback);

	void salvarQuestao(String titulo, String assunto, String enunciado, String dificuldade, String tipo, String imagem, String questaoID, String Id_usuario, AsyncCallback<Boolean> callback);

	void salvarQuestaoNoModeloProva(String questao_id, String modelo_id, String valor, AsyncCallback<Boolean> callback);

	void salvarTurma(String instituicao, String disciplina, String nome, String ano, ArrayList<String> listaAlunos, String Id_usuario, AsyncCallback<Boolean> callback);

	void updateAluno(String nomeAntigo, String matriculaAntiga, String instituicaoAntiga, String nome, String matricula, String instituicao, String Id_usuario, AsyncCallback<Boolean> callback);

	void updateInstituicao(String nomeAntigo, String nome, String cabecalho, String Id_usuario, AsyncCallback<Boolean> callback);

	void updateModeDeProva(String tituloAntigo, String titulo, String assunto, String comentario, AsyncCallback<Boolean> callback);

	void updateQuestao(String tituloAntigo, String titulo, String assunto, String enunciado, String dificuldade, String tipo, String imagem, String Id_usuario, AsyncCallback<Boolean> callback);

	void updateTurma(String nomeAntigo, String nome, String instituicao, String disciplina, String ano, ArrayList<String> listaAlunos, String Id_usuario, AsyncCallback<Boolean> callback);

	void updateUsuario(String nome, String login, String email, String senhaNova, String senhaAntiga, String Id_usuario, AsyncCallback<Boolean> callback);

	void deletarQuestaoDoModeloDeProva(String modeloID, String tituloQuestao, String valorQuestao, String Id_usuario, AsyncCallback<Boolean> callback);

}
